package me.raih.service;

import me.raih.pojo.po.User;
import me.raih.pojo.vo.PageBean;

import java.util.List;

/**
 * @Author Raih
 * @Time 2020/11/27  17:09
 */
public interface UserService {

    /**
     *  查找所有的用户
     * @return List<User>
     */
    List<User> findAllUsers();

    PageBean<User> findUserByCurrAndCurrentPage(String username,
                                          String name,
                                          String email,
                                          String address,
                                          long phone,
                                          int currentPage,
                                          int pageSize);
    User findUserByUsername(String username);


    boolean canUpdateUserByUser(User user);

    /**
     * 判断是否能够注册成功
     * @param user
     * @return 1 表示成功 0 表示失败 -1 表示账户已经存在，不能注册
     */
    int canAddUser(User user);

    /**
     * 手机号查询用户
     * @param phone
     * @return
     */
    User findUserByPhone(long phone);


    User findUserByUser(User user);

    /**
     * 注册用户信息
     * @param user
     * @return
     */
    boolean registerUser(User user);

    /**
     * 增加积分
     * @param username 给谁增加
     * @param points 增加多少
     * @return 增加成功了
     */
    boolean addUserPoint(String username,double points);

    /**
     * 改变激活状态
     * @param username 给谁激活
     * @param checkCode 激活码是什么
     * @return 成功与否
     */
    boolean changeUserStatus(String username, String checkCode);

    int findUserNumber();

    int findTodayUserNumber();

    int findYesterdayUserNumber();

    int findCurrMonthUserNumber();

    int findCurrWeekUserNumber();

    /**
     * 通过用户名查找积分
     * @param username 用户名
     * @return 积分
     */
    double findPointsByUsername(String username);

    /**
     * 删除用户了 额
     * @param username 用户名
     * @return boolean
     */
    boolean deleteUserByUsername(String username);
}
